# demo04_extend.py
# 定义Animal类，包含吃喝跑睡方法
class Animal:
    def __init__(self, name):
        self.name = name
    def eat(self):
        print(f'{self.name}正在吃东西')
    def drink(self):
        print(f'{self.name}正在喝水')
    def run(self):
        print(f'{self.name}正在奔跑。。')
    def sleep(self):
        print(f'{self.name}正在睡觉')
class Animal2:
    def catch(self):
        print(f'{self.name}正在抓老鼠')

# 定义Dog类，继承父类的方法
class Dog(Animal, Animal2):
    # 如果父类中有已经存在的方法，子类中再添加，会出现重写，也就不会执行父类中的方法
    # 构造方法
    def __init__(self, name, type):
        # 调用父类的构造方法，就会继承父类的属性
        Animal.__init__(self, name)
        # 子类的属性
        self.type = type
    def bark(self):
        print(f'{self.name}正在狂叫')
    def show_me(self):
        print(f'我的名字是{self.name} 品种是{self.type}')
if __name__ == '__main__':
    d1 = Dog('大黄', '金毛')
    d1.show_me()
    d1.catch()
    # d1.eat()
    # d1.drink()
    # d1.run()
    # d1.sleep()
    # d1.bark()
    # a1 = Animal('灰太郎')
    # a1.eat()
    # a1.drink()
    # a1.run()
    # a1.sleep()
